home *** CD-ROM | disk | FTP | other *** search
- /*******************************************************************************
- +
- + LEDA 2.1.1 11-15-1991
- +
- +
- + b_prio.h
- +
- +
- + Copyright (c) 1991 by Max-Planck-Institut fuer Informatik
- + Im Stadtwald, 6600 Saarbruecken, FRG
- + All rights reserved.
- +
- *******************************************************************************/
-
-
-
-
- #ifndef BPRIOH
- #define BPRIOH
-
- //------------------------------------------------------------------------------
- // b_priority_queues: bounded priority queues implemented by b_heaps
- //------------------------------------------------------------------------------
-
- #include <LEDA/b_heap.h>
-
- typedef b_heap_item b_pq_item;
-
- #define b_priority_queue(keytype) name2(keytype,b_priority_queue)
-
- #define b_priority_queuedeclare(keytype)\
- \
- struct b_priority_queue(keytype) : b_heap \
- { b_priority_queue(keytype)(int a, int b): (a,b) {}\
- ~b_priority_queue(keytype)() { }\
- b_pq_item insert(keytype k,int info)\
- { return b_heap::insert(info,Ent(k)); }\
- void decrease_inf(b_pq_item it,int newinf)\
- { b_heap::decrease_key(it,newinf); }\
- void del_item(b_pq_item x) { b_heap::delete_item(x); }\
- keytype key(b_pq_item x) { return keytype(b_heap::info(x)); }\
- int inf(b_pq_item x) { return b_heap::key(x); }\
- keytype del_min() { return keytype(b_heap::del_min()); }\
- b_pq_item find_min() { return b_heap::find_min(); }\
- void clear() { b_heap::clear(); }\
- int empty() { return (find_min()==0) ? true : false; }\
- };
-
- #endif
-
-